package com.chalk.vo;

import com.baomidou.mybatisplus.annotations.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 订单表Vo(OrderVo)（供订单支付用）
 * 包含订单表和订单明细表得内容
 *
 * @author maxiaoqiang
 * @since 2019-03-22 17:35:28
 */
@ApiModel(value = "OrderVo", description = "订单表Vo(OrderVo)（供订单支付用）")
@Data
public class OrderVo {

//    /** 订单id */
//    @ApiModelProperty(name = "orderId", value = "订单id")
//    @TableId(type = IdType.ID_WORKER_STR)
//    private String orderId;

    /**
     * 买家id（对应t_member表主键）
     */
    @ApiModelProperty(name = "buyerId", value = "买家id（对应t_member表主键）")
    @TableField("buyer_id")
    private String buyerId;

    /**
     * 卖家id（对应t_seller表主键）
     */
    @ApiModelProperty(name = "sellerId", value = "卖家id（对应t_seller表主键）")
    @TableField("seller_id")
    private String sellerId;

    /**
     * 卖家店铺名
     */
    @ApiModelProperty(name = "sellerName", value = "卖家店铺名")
    @TableField("seller_name")
    private String sellerName;

    /**
     * 外部订单编号
     */
    @ApiModelProperty(name = "orderNoOut", value = "外部订单编号")
    @TableField("order_no_out")
    private String orderNoOut;

    /**
     * 订单编号
     */
    @ApiModelProperty(name = "orderNo", value = "订单编号")
    @TableField("order_no")
    private String orderNo;

    /**
     * 订单总金额
     */
    @ApiModelProperty(name = "orderAmount", value = "订单总金额")
    @TableField("order_amount")
    private Object orderAmount;

    /**
     * 商品总金额
     */
    @ApiModelProperty(name = "itemAmount", value = "商品总金额")
    @TableField("item_amount")
    private Object itemAmount;

    /**
     * 运费
     */
    @ApiModelProperty(name = "deliveryFee", value = "运费")
    @TableField("delivery_fee")
    private Object deliveryFee;

    /**
     * 总折扣金额
     */
    @ApiModelProperty(name = "totalDiscount", value = "总折扣金额")
    @TableField("total_discount")
    private Object totalDiscount;

    /**
     * 实际需要支付金额（真正需要在线支付/线下支付的）
     */
    @ApiModelProperty(name = "realPayableAmount", value = "实际需要支付金额（真正需要在线支付/线下支付的）")
    @TableField("real_payable_amount")
    private Object realPayableAmount;

    /**
     * 实际已支付金额，即real_payable_amount中的已支付部分（考虑到某些业务场景允许部分支付的）
     */
    @ApiModelProperty(name = "realPaid", value = "实际已支付金额，即real_payable_amount中的已支付部分（考虑到某些业务场景允许部分支付的）")
    @TableField("real_paid")
    private Object realPaid;

    /**
     * 收货联系手机号
     */
    @ApiModelProperty(name = "contactMobile", value = "收货联系手机号")
    @TableField("contact_mobile")
    private String contactMobile;
    /**
     * 收货联系人
     */
    @ApiModelProperty(name = "contactPerson", value = "收货联系人")
    @TableField("contact_person")
    private String contactPerson;

    /**
     * 收货联系电话
     */
    @ApiModelProperty(name = "contactTel", value = "收货联系电话")
    @TableField("contact_tel")
    private String contactTel;
    /**
     * 买家留言
     */
    @ApiModelProperty(name = "buyerMemo", value = "买家留言")
    @TableField("buyer_memo")
    private String buyerMemo;

    /**
     * 支付方式（1、消费积分支付，2、余额支付）
     */
    @ApiModelProperty(name = "payType", value = "支付方式（1、消费积分支付，2、余额支付）")
    @TableField("pay_type")
    private Integer payType;

    /**
     * 支付状态（0，未支付，1、已支付，2、部分支付-预留，默认0）
     */
    @ApiModelProperty(name = "payStatus", value = "支付状态（0，未支付，1、已支付，2、部分支付-预留，默认0）")
    @TableField("pay_status")
    private Integer payStatus;

    /**
     * 支付通道（支付宝：alipay，微信：wx，线下POS机：pos，银联在线：unionpay，财付通：tenpay，快钱：99bill）
     */
    @ApiModelProperty(name = "payChannel", value = "支付通道（支付宝：alipay，微信：wx，线下POS机：pos，银联在线：unionpay，财付通：tenpay，快钱：99bill）")
    @TableField("pay_channel")
    private String payChannel;

    /**
     * 发货配送方式（1、快递，2、平邮，3、EMS，4、上门自提）
     */
    @ApiModelProperty(name = "deliveryType", value = "发货配送方式（1、快递，2、平邮，3、EMS，4、上门自提）")
    @TableField("delivery_type")
    private Integer deliveryType;
    /**
     * 商品id
     */
    @ApiModelProperty(name = "itemId", value = "商品id")
    @TableField("item_id")
    private String itemId;

    /**
     * sku id
     */
    @ApiModelProperty(name = "skuId", value = "sku id")
    @TableField("sku_id")
    private String skuId;
    /**
     * 数量
     */
    @ApiModelProperty(name = "quantity", value = "数量")
    @TableField("quantity")
    private Integer quantity;

    /**
     * 价格（sku的单价）
     */
    @ApiModelProperty(name = "price", value = "价格（sku的单价）")
    @TableField("price")
    private Object price;
    /**
     * 商品名称
     */
    @ApiModelProperty(name = "itemName", value = "商品名称")
    @TableField("item_name")
    private String itemName;

    /**
     * sku名称（其值一般等于item_name 加 sku_sales_props)
     */
    @ApiModelProperty(name = "skuName", value = "sku名称（其值一般等于item_name 加 sku_sales_props)")
    @TableField("sku_name")
    private String skuName;

    /**
     * sku销售属性信息（规格信息）
     */
    @ApiModelProperty(name = "skuSalesProps", value = "sku销售属性信息（规格信息）")
    @TableField("sku_sales_props")
    private String skuSalesProps;

    /**
     * 国际条码类型（中国欧洲用EAN码，北美用UPC码，默认EAN）
     */
    @ApiModelProperty(name = "barcodeType", value = "国际条码类型（中国欧洲用EAN码，北美用UPC码，默认EAN）")
    @TableField("barcode_type")
    private String barcodeType;

    /**
     * 国际条码
     */
    @ApiModelProperty(name = "barcode", value = "国际条码")
    @TableField("barcode")
    private String barcode;

    /**
     * 商家自定SKU编号
     */
    @ApiModelProperty(name = "sellerSkuNo", value = "商家自定SKU编号")
    @TableField("seller_sku_no")
    private String sellerSkuNo;

    /**
     * SKU外部编号（一般用于对接外部系统）
     */
    @ApiModelProperty(name = "outerNo", value = "SKU外部编号（一般用于对接外部系统）")
    @TableField("outer_no")
    private String outerNo;

    /**
     * 认图片url（如SKU无自己的图片，则是商品图片）
     */
    @ApiModelProperty(name = "picUrl", value = "认图片url（如SKU无自己的图片，则是商品图片）")
    @TableField("pic_url")
    private String picUrl;

    /**
     * 品牌id(对应t_brand表)
     */
    @ApiModelProperty(name = "brandId", value = "品牌id(对应t_brand表)")
    @TableField("brand_id")
    private String brandId;

    /**
     * 品牌名称
     */
    @ApiModelProperty(name = "brandName", value = "品牌名称")
    @TableField("brand_name")
    private String brandName;

}
